pandas で read_s3 と to_s3

# http://stackoverflow.com/questions/35803601/reading-a-file-from-a-private-s3-bucket-to-a-pandas-dataframe
# 今後の動きはこのissue https://github.com/pydata/pandas/issues/11915
# milestone 0.18.1とのこと
import boto3
import pandas as pd

def read_s3(key, **kwargs):
    """read_csv("s3://xx|https://s3-xxx")がうまくいかなかった... py3.5.1"""
    s3_cleint = boto3.client('s3')
    obj = s3_cleint.get_object(Bucket='bucket', Key=key)
    return pd.read_csv(obj['Body'], **kwargs)

# ついでに作ってみた。けど、大きすぎるファイルの場合微妙かも
# その場合は、いったんfile -> upload -> os.remove
def to_s3(df, key, **kwargs):
    with io.StringIO() as buf:
        df.to_csv(buf, **kwargs)
        s3_client = boto3.client('s3')
        s3_client.put_object(
            Bucket='bucket', Key=key,
            Body=io.BytesIO(buf.getvalue().encode()))